python3小白课:字典初识

字典的引入

这节课让我们来接触一个全新的数据类型——字典(dict)。

小时候陪伴我们成长的我想肯定是一本总是被翻烂的新华字典吧。字典,存在对应映射关系,你拿着一本英汉大字典,查询某个单词,就能查到对应的释义中文解释是什么。那么在python中的字典就类似这样的映射关系。

它同样可以存储很多的数据内容,但跟我们的列表、元素不同的是,它的内部是不存在顺序的,所以我们不能使用中括号的数字索引来获取字典元素值。

为什么会有字典呢?大家可以这么想,你在查英汉字典的时候,会有如下对应关系:

apple -> 苹果

banana -> 香蕉

如果我们是用列表或者元组来存储这样的对应关系,一种比较不错的方式是弄两个列表或元组,通过索引来进行一一对应。但这显然不是一种最优的方案。这时候,我们可以使用字典,字典通过键值对的方式来做一一对应的映射关系,都存在一个字典变量里面,可以达到这样的效果(注意这里不是真的python代码):

a = {
    apple -> 苹果
    banana -> 香蕉
}

这里的英文单词就是字典中的键(key),中文释义就是字典中的值(value)。它们组成key-value键值对。而且在内部没有顺序,比如你先定义banana这个键值对,跟先定义apple并没有任何区别。

[!danger]

我们可以通过键来获取值,所以在python的字典中,键不允许重复。


创建字典

[!question]

那么在python中,如何定义字典呢?

我们来看看下面的代码:

# coding:utf-8
# 通过dict命令定义字典或{}定义字典,可以定义空字典
a = {}   # 这种方式较常用
print(dict(), a)
# 可以这么写来定义,多个字典成员之间用逗号分隔,值可以是各种基础数据类型
a = {"语文": 90, "数学": 89, "计算机": None}
print(a)
# 对于字典,python还支持跨行定义,这样看起来比较美观,实际使用时也比较推荐
a = {
    "语文": 90,
    "数学": 89,
    "计算机": 100
}
print(a)
# 不可变类型可以作为key,比如数字、元组等,不能是列表为key(思考为什么?)。看个例子:
# 这里我们用了三种类型的数据作为键,看起来相似,但实际不同
a = {
    1: 90,
    "1": 89,
    (1,): 100
}
print(a)

# python还支持通过传入列表或元组创建dict,每个元素是一个键值对,比如:
a = [("语文", 90), ("数学", 89), ("计算机", None)]
print(dict(a))
a = [["语文", 90], ["数学", 89], ["计算机", None]]
print(dict(a))

# 还可以通过dict命令的关键字参数创建dict,此时关键字不用加引号,键会是字符串(大多数时候都是字符串键)
a = dict(语文=90, 数学=100)
print(a)
# 这种方式不支持关键字用元组哦~,会报错
a = dict((1,2,3)=90, bbb=100)
print(a)

单词释义

单词 释义
dict dictionary字典单词的简写形式
key
value
Copyright © 雪山凌狐教程 all right reserved,powered by Gitbook该文件修订时间: 2020-04-11 17:09:39

results matching ""

    No results matching ""